今天要介紹的人物也是低調的強者,還直接嗆說寫他一定會發現沒東西好寫,只好改寫別人 XDD
Lays,a.k.a L4ys,跟 Orange 一樣也是在 CTF 盛行之前就接觸資安圈的 senpai (不過後來大學畢業之後就到交大 SQLAB 變我學弟了,變成我才是 senpai QQ)
剛開始接觸資安是寫遊戲外掛,聽說有被 ban 過不少帳號 XD 在接觸 HITCON CTF 之前,主要在 Hack Stuff 社群活躍 (...或是潛水 ?)
Lays 的專長是逆向工程,而且樂在其中 XD reverse 題我偶爾也會看一下,但通常是沒有 pwn 題做的次要選擇,是 HITCON CTF reverse 組的最強戰力之一
比較少出題目,但卻是 HITCON CTF 能成功推動的最重要幕後功臣,但同時也是廉價工具人 (幫 QQ),比如說這個前台光彩炫目的光劍,後面是由 Lays 負責撰寫韌體的部分
以前是個只需要給香蕉就可以躺著等任務完成,但自從開始接觸 bounty 之後已經逐漸變成 充滿銅臭味的大人
最早開始意識到 Lays 應該是在 2013 年的 HITCON Wargame,單槍匹馬就殺進前十名
後來 DEF CON 22 CTF 回國後,在交大開設的程式安全中以亂入的身分霸佔排行榜前幾名,在這之前也有解當時 SQLAB 架設的 wargame.cs.nctu.edu.tw
節錄當年 HITCON irc 的對話.....
16:22 < Lays_> nctu wargame 的最後一題哪時候要修 T _ T
16:22 < Lays_> 可惡 想打
16:23 < cychao> Lays_: 要打我在幫你開
16:23 < Lays_> 我怕一直 pwn 不出來你手會酸
16:23 < cychao> Lays_: 那你等crax.ctf.tw吧
16:24 < ddaa> Lays_: 敬請期待~
不過後來 crax.ctf.tw 沒誕生就是了,只有誕生 http://secprog.cs.nctu.edu.tw
當然亂打別人的課程的 CTF 會受到懲罰的,後來就 jeffxx 被抓來當台交賽 CTCTF 的動畫製作,這一當就當了六年,到現在 HITCON CTF Final 的戰場還是由 Lays 做的......XD 每年 Lays 都會說:「明年我們應該找網頁前端/動畫製作/.....」之類的台詞
前面在 angelboy 那篇提過,2017 年 Lays, angelboy 和我架設了 pwnable.tw,Lays 一個人就包辦了:網站視覺設計、資料庫設計、成就系統、贊助系統......總之就是包辦了整個前端設計 XD 另外兼直客服組,負責處理從 email 寄來的客戶需求
另外 Lays 也是最早在 FireEye 舉辦的逆向工程競賽中最早破台的幾個台灣人之一
lucas
和 Lays
破台最後不得不說,Lays 是 HITCON CTF team 裡面的 幹話王
****兼 梗圖王
,這篇文章標粗體字的部分全部都是 Lays 的經典名句.....XD
比如說,就在剛剛出現了以下對話:
O: 你怎麼沒有去 Bluehat
L: 其實我有票,但我沒有機票
(歡迎大家贊助 Lays 機票出國 X)
常把 能坐著,就不要站著,能躺著,就不要坐著 掛在嘴邊,並身體力行,所有做了各種幫助偷懶的 Lazy Project,讓大家省下寶貴的時間,來做更偷懶的事情,接著就來一一介紹:
IDA Pro plugin,裡面各種精巧的小功能,雖然不一定是都經常用到,但需要用到的時候就會在心中感慨:感恩 lays,讚嘆 lays
void
實在很痛苦切到 hexdump 的 view 然後用滑鼠慢慢框要選取的資料,貼到其他 editor 再改成需要的格式
用 xxd 之類的程式打開 binary,找到 offset 之後再搭配 grep 將 pipe 到 awk 做轉換
安裝 LazyIDA,一鍵滿足你的願望
分析 real world 程式的工具,real world 的程式經常會有共用的 code,因此可以透過 binary 的 signature 來從 database 尋找是不是有人已經看過這段 code 的邏輯
相信打 CTF 的一定都遇過要解 SMT solver 的題目,尤其是 reverse 的題型 ... XD 平常我們可能會選擇用 python z3,比較好寫 code,但執行速度就是慢......QQ KLEE 執行的快,但是環境相對麻煩
Lays 在 reverse 和 Windows 上的耕耘終於在 2019 年開花結果,拿到微軟的百大駭客的第 42 名 (灑花)
最後引用 Lays 自述的部分貼文做結尾,也希望自己之後也能有所成績
覺得比起打 CTF 打到被總統召見
最棒的還是能夠持續做著自己喜歡的事情吧
十年了
上班的時候還是會不自覺的跟同事說「我覺得做逆向好爽喔」這種幹話
我真的是沒救了
Lays 說他每年 HITCON CTF 都沒出題,今天一定找不到題目來寫...... 太天真了,雖然當時我沒有解這題,但我當時 edu ctf 也出了一題 minesweeper,所以對這題可是印象深刻呢......XD
開啟程式後看起來跟 Windows 的踩地雷差不多,但如果有對 Windows 踩地雷熟悉的人,應該一眼就會看出不對勁,地圖大小是 40x40,但初級地圖是 8x8、中級 16x16、高級 36x16,因此這是一張自訂大小的地圖
隨便點一個位置,基本上有很高的機率爆炸,但我們可以發現插旗子的部分有個 T
的 pattern:
如果運氣夠好沒有被炸死,可以在下一次遊戲發現 pattern 變成 H
猜了三個字之後會發現 pattern 分別是:T
、H
、E
,可以推測應該猜到最後就可以得到一句包含 flag 的句子,知道程式在幹嘛之後,逆向起來就比較有切入點,同時程式內包含了 Are u a hacker O_o?
的字串,根據過往解逆向題的經驗,使用到這類字串可能是出題者用來驗證某些事情的 function,因此也值得重點觀察
經過一連串樸實無華而枯燥的逆向之後,會發現這些 pattern 是與 0x00973bd9
存的內容有關,內容是一串內容是 0 或 1 的 byte array,如果把該位置的 bit 以 15 個字為一組,每三個為一行排列,就會得到以下的 patterrn,應該不難看出字串是 THEFLAGIShitcon{BOOM!}
@@@@@@ @@ @@ @@@@@@ @@@@@@ @@ @@@@@@ @@@@@@ @@@@@@ @@@@@@ @@
@@ @@ @@ @@ @@ @@ @@ @@ @@ @@ @@ @@ @@ @@
@@ @@@@@@ @@@@@@ @@@@@@ @@ @@@@@@ @@ @@ @@ @@@@@@ @@@@@@ @@@@@@
@@ @@ @@ @@ @@ @@ @@ @@ @@ @@ @@ @@ @@ @@ @@ @@
@@ @@ @@ @@@@@@ @@ @@@@@@ @@ @@ @@@@@@ @@@@@@ @@@@@@ @@ @@ @@ @@
@@@@ @@@@ @@@@@@ @@@@@@ @@ @@ @@ @@@@
@@ @@ @@ @@ @@ @@ @@ @@@@@@ @@ @@
@@@@@@ @@@@@@ @@@@ @@@@ @@@@@@ @@ @@ @@ @@ @@ @@ @@ @@@@
@@ @@ @@ @@ @@ @@ @@ @@ @@ @@ @@ @@ @@ @@ @@
@@@@@@ @@@@@@ @@ @@ @@@@ @@@@@@ @@@@@@ @@@@@@ @@ @@ @@ @@@@
後來得知這題有個歪解是謝夫羅德大法
......XD 當然踩地雷本身沒有 Save Game 的功能,但可以將 binary 丟進 VM 裡面執行,每一次嘗試之前都先做 snapshot,如果成功踩中安全地帶得到下一個 pattern 就再做一次 snapshot,失敗就還原回去......,不得不說是很有創意的解法 XDD
(本文逆向部分是參考自 lingling
的 blog,當時不小心先得知 unintended solution 就沒認真看了......(艸),只有重新 parse pattern 讓結果比較好閱讀)